Okay, gut, dann können wir starten.
Ja, also willkommen zur Vorlesung der Woche.
Wir wollen, also ich möchte diese Stunde, das Kapitel Cash abschließen.
Wir hatten uns letzte Woche mit dem Thema schon auseinandergesetzt.
Ja, ich suche noch den hernächst.
Ah, da ist er ja.
Wir müssen noch ein Ende der Vorlesung unterhalten mit diesen Ride Allocate und Ride Buffer
Techniken.
Und ja, ich habe da nochmal drüber nachgedacht.
Also im ersten Moment sieht es natürlich tatsächlich so aus, bei einer Ride Allocate
Strategie, also Ride Allocate, das heißt er nochmal ergreift auf den, das sind die
Probleme, wenn er einen Ride Miss hat.
Da habe ich was gesucht, das habe ich leider noch nicht mehr gefunden, das ist jetzt der
Grund, weshalb ich ja zu spät komme.
Und ja, also beim Ride Miss, er will was schreiben, aber es ist nicht im Speicher.
Jetzt könnten wir ja annehmen, hm, dann muss er ja doch, muss er ja eigentlich gar nicht
mehr auf den Speicher zugreifen, was soll es, er will ja eh was schreiben.
Hat hier seinen Cash, hier ist der Speicher und hier ist die CPU mit ihrem Register.
So und ich will jetzt irgendwas schreiben in den Cash.
Naja, nachdem er es eh schreiben will, ist es ja eigentlich egal, dann muss er es doch
vorher gar nicht mehr lesen, könnte man annehmen, ne.
Aber das Problem ist ja, der verwaltet das Ganze immer in Blöcken.
Das heißt, also das, mir regnet es von einem Ride Miss.
Er will was schreiben, eine Zeile, die nicht im Cash ist.
Da, was tun, er muss es trotzdem erstmal lesen, weil er muss ja die komplette, also er will
bloß einen Register schreiben, dazu wäre der Block.
Er könnte natürlich damit zufrieden sein, genau diese eine Adresse dazu beschreiben.
Aber diese Adresse ist ja Teil eines Blocks, den er nicht kennt, deswegen muss er tatsächlich
erst das hier einlesen, also das ist jetzt dieser Block, damit er auch die anderen Werder
hier hat.
Der hier wäre vielleicht uninteressant, das ist tatsächlich der, den er überschreiben
will.
Aber die anderen hier, die brauche er und deswegen muss er das mit einlesen.
Gut, jo.
Frage dazu, was ist das dann parallel, das heißt, dass die CPU eventuell auf anderen
Blöcken weiter rechnen kann, während die anderen auf die Memory blöcken oder?
Das geht bei sogenannten Non-Blocking Caches.
Da komme ich nachher noch drauf, da sage ich noch ein paar Worte dazu.
Und unter anderem gibt es da die eine Technik der Transactional Memories, das heißt, da
werden bestimmte Speicher, Zugriffe zusammengefasst vom Cache und die werden dann in einem Satz
behandelt.
Und das machen die neuen Haswell Mikroarchitektur und so, das schauen wir uns aber im nächsten
Kapitel an, wenn ihr nach der Modulierung dann einzelne Beispiele, wie es im Realen
tatsächlich gemacht ist, mal hier behandeln wollt.
So, vielleicht fasse ich das noch einmal ein bisschen zusammen, was ich am Ende der letzten
Stunde noch einmal gemacht habe.
Also wir hatten noch einmal uns damit beschäftigt mit Read, Read-Zugriffe, Cache und haben gesagt,
die kommen häufiger vor als die Write-Zugriffe beim Cache.
Was ich hier machen kann zur Optimierung beim Lesen ist, auswerten des Tags und Zugriff
auf dem Cache, also die Information Lesen, gleichzeitig.
Presenters
Zugänglich über
Offener Zugang
Dauer
01:32:16 Min
Aufnahmedatum
2013-11-21
Hochgeladen am
2019-04-30 04:19:03
Sprache
de-DE
-
Organisationsaspekte von CISC und RISC-Prozessoren
-
Behandlung von Hazards in Pipelines
-
Fortgeschrittene Techniken der dynamischen Sprungvorhersage
-
Fortgeschritten Cachetechniken, Cache-Kohärenz
-
Ausnutzen von Cacheeffekten
-
Architekturen von Digitalen Signalprozessoren
-
Architekturen homogener und heterogener Multikern-Prozessoren (Intel Corei7, Nvidia GPUs, Cell BE)
-
Architektur von Parallelrechnern (Clusterrechner, Superrechner)
-
Effiziente Hardware-nahe Programmierung von Mulitkern-Prozessoren (OpenMP, SSE, CUDA, OpenCL)
-
Leistungsmodellierung und -analyse von Multikern-Prozessoren (Roofline-Modell)
- Patterson/Hennessy: Computer Organization und Design
-
Hennessy/Patterson: Computer Architecture - A Quantitative Approach
-
Stallings: Computer Organization and Architecture
-
Märtin: Rechnerarchitekturen